package gui.treenodes;

import java.util.ArrayList;
import java.util.List;

import core.Transaction;

public class TransactionTypeNode implements ParentTransactionTreeNode
{
	private String type;
	private List<TransactionNode> transactionNodes;
		
	public int add(TransactionNode node){
		transactionNodes.add(node);
		return transactionNodes.indexOf(node);
	}
	
	public TransactionTypeNode(String type){
		this.type = type;
		transactionNodes = new ArrayList<TransactionNode>();
	}
	
	public TransactionNode getNodeByTransaction(Transaction transaction){
		for(TransactionNode node : transactionNodes){
			if(node.getTransaction().equals(transaction)){
				return node;
			}
		}
		return null;
	}
	
	@Override public TransactionNode getNodeAt(int index){
		return transactionNodes.get(index);
	}

	@Override public int getIndex(Object o){
		return transactionNodes.indexOf(o);
	}
	
	public void remove(TransactionNode node){
		transactionNodes.remove(node);
	}
	
	@Override public double getAmmount(){
		double result = 0;
		for(TransactionNode node : transactionNodes){
			result += node.getAmmount();
		}
		return result;
	}

	@Override public int getChildCount(){
		return transactionNodes.size();
	}
	
	public String getType(){
		return type;
	}
	
	@Override public String toString(){
		return type;
	}
}
